home *** CD-ROM | disk | FTP | other *** search
/ Scene Storm / Scene Storm - Volume 1.iso / coding / c / amiexpress / source / ae / code / ax3.00 / flagfiles.c < prev    next >
Encoding:
C/C++ Source or Header  |  1980-01-03  |  2.7 KB  |  120 lines

  1. #include "bbs.h"
  2.  
  3. static void ShowFlags(void)
  4. {
  5.  if(strlen(flaglist)==0)    AEPutStr("No file flags\r\n");
  6.  else    {
  7.         FAEPutStr(flaglist);
  8.         FAEPutStr("\r\n");
  9.     }
  10. }
  11.  
  12. char *IsInList(char *s,char *p,int *length);
  13.  
  14. static int RemoveFile(char *s,char *e)
  15. {
  16.  int length,error=0;
  17.  char *p;
  18.  
  19.  while(p=IsInList(s,e,&length)) {
  20.         if(s[p-s+length]==' ')         length++;
  21.         strcpy(p,p+length);
  22.         error=1;
  23.     }
  24.  return(error);
  25. }
  26.  
  27. static void RemoveFileList(char *s)
  28. {
  29.  char *p;
  30.  
  31.  if(p=strtok(s," ")) {
  32.         do {
  33.          RemoveFile(flaglist,p);
  34.             p=strtok(NULL," ");
  35.         } while(p!=NULL);
  36.     }
  37. }
  38.  
  39.  
  40. int AddFlagtoList(char *);
  41.  
  42. static void FlagFrom(char *s)
  43. {
  44.  int stat=0,flag=1;
  45.  FILE *fp;
  46.  int i;
  47.  sprintf(GSTR2,"%sdir%d",Conference_Location,MaxDirs);
  48.  if(fp=fopen(GSTR2,"r")) {
  49.         while(fgets(GSTR2,90,fp) && stat!=1) {
  50.                 if(GSTR2[0]!=' '&&GSTR2[0]!='\0') {
  51.                     i=0; while(GSTR2[i]!='\0' && GSTR2[i]!=' ') { GSTR3[i]=GSTR2[i]; i++; }
  52.                         if(i==0) continue; 
  53.                         GSTR3[i]='\0';
  54.                     if(!flag)                    stat=AddFlagtoList(GSTR3);
  55.                     if(flag && !stricmp(GSTR3,s)) {
  56.                         flag=0;
  57.                         stat=AddFlagtoList(GSTR3);
  58.                     }
  59.             }
  60.         } 
  61.         if(flag)        AEPutStr("Sorry filename not found!\r\n");
  62.         fclose(fp);
  63.     } else MyError(4);      //FileListError();
  64. }
  65.  
  66.  
  67. int FlagFiles(char *s)
  68. {
  69.  int stat;
  70.  
  71.  if(s==NULL)     ShowFlags();
  72. Backloop:
  73.  if(s==NULL) {
  74.      AEPutStr("Filename(s) to flag: (F)rom, (C)lear, (Enter)=none? ");
  75.         stat=LineInput("",GSTR1,190,KEYBOARD_TIMEOUT);
  76.         if(stat<0)        return(stat);
  77.     } else
  78.      strcpy(GSTR1,s);
  79.  
  80.  if(GSTR1[0]!='\0') {
  81.         if((GSTR1[0]=='C'||GSTR1[0]=='c')&&(GSTR1[1]=='\0'||GSTR1[1]==' ')) {
  82.          if(GSTR1[1]==' ')            strcpy(GSTR1,GSTR1+2);
  83.          else {
  84.              if(s!=NULL)    ShowFlags();
  85.              AEPutStr("Filename(s) to Clear: (*)All, (Enter)=none? ");
  86.                 stat=LineInput("",GSTR1,190,KEYBOARD_TIMEOUT);
  87.                 if(stat<0)                return(stat);
  88.  
  89.              if(GSTR1[0]=='\0')
  90.                  return(SUCCESS);
  91.              AEPutStr("\r\n");
  92.             }
  93.             strupr(GSTR1);
  94.             if(GSTR1[0]=='*')             flaglist[0]='\0';
  95.          else                        RemoveFileList(GSTR1);
  96.          return(1);
  97.         } else {
  98.          if((GSTR1[0]=='F'||GSTR1[0]=='f')&&(GSTR1[1]=='\0'||GSTR1[1]==' ')) {
  99.              if(GSTR1[1]!=' ') {
  100.                  AEPutStr("Filename to start flagging from: ");
  101.                     stat=LineInput("",GSTR1,190,KEYBOARD_TIMEOUT);
  102.                     if(stat<0)                    return(stat);
  103.                  if(GSTR1[0]=='\0')            return(SUCCESS);
  104.                 } else                strcpy(GSTR1,GSTR1+2);
  105.  
  106.              FlagFrom(GSTR1);
  107.                 return(1);
  108.             } else {
  109.              stat=AddFlagtoList(GSTR1);
  110.                 if(stat==1) {
  111.                  if(s==NULL)            goto Backloop;
  112.                   else                return(FAILURE);
  113.                 }
  114.              if(stat==2)                 return(FAILURE);
  115.             }
  116.         }
  117.     }
  118.  return(SUCCESS);
  119. }
  120.